Table Of Contents

Previous topic

SuttonChenPotential class

Next topic

ChargeRelaxation class

This Page

CombPotential class

This class constructs the Comb potential for silicon and silica [1] as a subclass of CompoundPotential.

Load the potential with:

>>> from pysic.interactions.comb import CombPotential
>>> import pysic
>>> calc = pysic.Pysic()
>>> pot = CombPotential()
>>> pot.set_calculator(calc, True)

The potential is only defined for Si and SiO and parameters have been hard coded, so symbols need not be set. The potential also automatically includes screened CoulombSummation, which is why the calculator should be given to it explicitly with set_calculator().

Comb is a fairly complicated potential with many components such as local attractive and repulsive terms, bond angle terms and electrostatics. The class allows the user to switch terms on and off in order to analyze their contribution.

[1]T.-R. Shan, D. Bryce, J. Hawkins, A. Asthagiri, S. Phillpot, and S. Sinnott, Phys Rev B 82, 235302 (2010).

Full documentation of the CombPotential class

class pysic.interactions.comb.CombPotential(excludes=['direct_coulomb', 'long_coulomb'])[source]

Class representing a COMB potential.

Use:

import pysic
import pysic.interactions.comb as comb_sio

calc = pysic.Pysic()
pot = comb_sio.CombPotential()     
pot.set_calculator(calc, True)

Since the potential may also define CoulombSummation (which it by default does), you should always pass the calculator to the potential in addition to passing the potential to the calculator.

The potential can be modified through the exclusion list. This defines which chuncks of the potential are incorporated at any time. For instance:

pot.exclude('si_self')
calc.set_potentials(pot)

will remove the self energy contribution from Si atoms. If you modify the potential, you need to confirm the changes by passing the potential to the calculator. This is because the potential is built in the calculator as it is passed. Therefore any changes made after that to the potential will not propagate to the calculator.

check_exclude(ex)[source]

Returns True, if ex is a valid keyword of the list of components for this potential.

define_elements()[source]

Creates the components of the potential.

exclude(ex)[source]

Excludes the given component from the potential.

exclude_all()[source]

Excludes everything.

get_parameter_value(param_name)
include(ex)[source]

Includes the given component in the potential.

include_all()[source]

Includes all components in the potential, except long range Coulomb interaction.

is_excluded(ex)[source]

Returns True if the given component is excluded from the potential.

is_included(ex)[source]

Returns True if the given component is included in the potential.

list_excludes()[source]

Lists the excluded components.

list_possible_excludes()[source]

Lists the keywords of the list of components of the potential.

set_calculator(calc, reciprocal=False)[source]

Attaches the calculator to the potential. This is needed so that a CoulombSummation can be set. If the argument reciprocal=True is given, also the command calc.set_potentials(self) is run.

set_ewald(calc, cheat)[source]

Switches on Ewald summation in calc. If cheat == True, a short ranged screened interaction is used. For internal use.

set_parameter_value(param_name, value)
toggle_exclude(ex)[source]

Changes the state of the given component from included to excluded, or from excluded to included.